The extensible business reporting language (XBRL) is a specification for publishing and exchanging financial information of an enterprise. XBRL conforms to the extensible markup language (XML). In essence, XBRL is an electronic data exchange format designed specifically for financial data, such as financial reports, statements, and audit schedules.
XBRL includes an industry-defined taxonomy schema that defines the set of financial accounts to be included in the financial reports or statements. Each financial report or statement is represented as a corresponding XBRL instance document that conforms to an XBRL taxonomy document. In particular, an XBRL taxonomy document defines an XML schema that provides a chart of the financial accounts of the enterprise. Each XBRL instance document for the enterprise conforms to the XBRL taxonomy document and provides specific financial data for one or more of the accounts. XBRL requires that each financial data element of an XBRL instance document be associated with both a unit and a context, such as business entity, time period and segment.
An XBRL engine, also referred to as an XBRL processor, is a software application used to create XBRL taxonomy documents to model the financial accounts of an enterprise. In addition, an XBRL engine processes and validates XBRL instance documents produced by the enterprise. Client software applications, such as reporting tools, interact with the XBRL engine to access the financial data encapsulated in the XBRL instance documents and present the financial data to a user. For example, in response to a request from a client software application, an XBRL engine may import an XBRL instance document and generate an XML or HTML document or other document for use by the client software application.
In general, conventional XBRL engines do not readily allow the financial data to be presented and manipulated in a true multidimensional fashion. More specifically, conventional XBRL engines do not allow the financial data encapsulated within the XBRL documents to be represented as a data cube having multiple dimensions. Moreover, conventional XBRL engines tend to process and represent a single XBRL instance document at a time.